* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*   * * * *   *                       
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*   * * * *   *                       
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*   * * * *   *                       
*   * * * *   *                       
*   * * * *   *                       
*   * * * *   *                       
*   * * * *   *                       
*   * * * *   *                       
*   * * * *   *                       
*   * * * *   *                       
*   * * * *   *                       
*   * * * *   *                       
*   * * * *   *                       
*   * * * *   *                       
*   * * * *   *                       
*   * * * *   *                       
*   * * * *   *                       
